home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / src / out-of-phase-102-c / OutOfPhase 1.02 Source / OutOfPhase Folder / SymbolTable.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-23  |  1.3 KB  |  52 lines  |  [TEXT/KAHL]

  1. /* SymbolTable.h */
  2.  
  3. #ifndef Included_SymbolTable_h
  4. #define Included_SymbolTable_h
  5.  
  6. /* SymbolTable module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definition */
  11. /* SymbolTableEntry */
  12. /* TrashTracker */
  13. /* Memory */
  14. /* DataMunging */
  15.  
  16. struct SymbolTableRec;
  17. typedef struct SymbolTableRec SymbolTableRec;
  18.  
  19. /* forwards */
  20. struct TrashTrackRec;
  21. struct SymbolRec;
  22.  
  23. /* all memory allocated through this module is from TrashTracker */
  24.  
  25. /* create a new symbol table */
  26. SymbolTableRec*            NewSymbolTable(struct TrashTrackRec* TrashTracker);
  27.  
  28. /* create a new symbol table lexical level */
  29. MyBoolean                        IncrementSymbolTableLevel(SymbolTableRec* SymbolTable);
  30.  
  31. /* drop the current symbol table lexical level */
  32. void                                DecrementSymbolTableLevel(SymbolTableRec* SymbolTable);
  33.  
  34. /* result codes from adding a symbol to the symbol table */
  35. typedef enum
  36.     {
  37.         eAddSymbolNoErr EXECUTE(= -5152),
  38.         eAddSymbolAlreadyExists,
  39.         eAddSymbolNoMemory
  40.     } AddSymbolType;
  41.  
  42. /* add symbol table entry to the symbol table.  returns a result code */
  43. AddSymbolType                AddSymbolToTable(SymbolTableRec* SymbolTable,
  44.                                             struct SymbolRec* SymbolToAdd);
  45.  
  46. /* get a symbol from the symboldflksakdo table */
  47. /* it returns NIL if the entry was not found. */
  48. struct SymbolRec*        GetSymbolFromTable(SymbolTableRec* SymbolTable, char* NameString,
  49.                                             long NameStringLength);
  50.  
  51. #endif
  52.